While microcomputers were once only used as dedicated and completely isolated devices, they are now used for a wide range of applications, many of which require microcomputers to communicate with each other or with larger centrally located computers. This communication frequently is accomplished over voice grade communication channels. Modems are used to convert digital data from the computer to analog data for transmission over these voice grade communication channels and subsequent redigitization upon receipt. As signal processing techniques have advanced, modem technology has also advanced providing the capability of transmitting at higher speeds over voice grade channels. Problems maintaining the data integrity across the communications channel have developed with such high speed communication because the higher speed data transmission methods are more vulnerable to noise interference within the communication channel. To facilitate higher speed communications, communications protocols have been developed to detect and correct data transmission errors and ensure data integrity across the channel.
A communication protocol is basically a set of rules that defines how communicating devices interact. For one device to transfer data successfully to another, both devices must observe the same protocol. Typically, a protocol specifies when to send a message, how to format the information in the message, and at the other end, how to acknowledge the receipt of the message.
Simple physical connect protocols are concerned only with hardware configurations. Establishing the basic physical connection between two modems requires that a particular series of steps be followed. The originating modem initiates its sending sequence, and the telephone number representing the electronic address of the receiving modem is formatted as a series of pulses or tones and sent to the telephone network. The receiving modem senses the incoming call as a relatively high voltage (sufficient to cause a phone to ring) and interprets this as a request to establish a connection. The modems then proceed to establish the physical connection via a series of signal exchanges that result in a particular connection protocol. Such a connection is possible because both modems use the same physical connect protocol. These basic physical connect protocols are fairly standard. CCITT specifications V.22, V.22bis, V.29, V.32 and V.32bis are common as well as Bell 212A. These physical level protocols do not ensure error free communication.
Connecting two computers is only a small part of the communications work necessary for accurate data transfer. As described in greater detail below, the transmission medium through which the data is sent is often noisy, and errors can crop up in the transmitted data. These errors must be: detected and corrected. The resources available to store incoming data also must be passed and matched so that the recipient is not flooded with data. These concerns, therefore, go beyond the physical level protocols. A higher level protocol is required to ensure error free communications.
One protocol which enables error free communications between modems is the Microcom Networking Protocol (MNP) which has been developed by Microcom, Inc. of Norwood, Mass. MNP provides a sophisticated communications system which includes provisions for both reliable terminal-type interactive communications and reliable file transfer. MNP provides sophisticated error checking and correction as well as data compression. MNP is widely used to provide error free communications.
The MNP protocol, which has been developed principally for use with microcomputers, includes three layers, and the use of only three layers enable MNP to provide the necessary services with the desired space and performance characteristics for a microcomputer environment. The three layers or modules are combined to perform a series of complex functions in a manner in which changes in one module may not drastically affect another module, as long as certain parts of the module's interface remain the same.
In MNP, each layer is relatively isolated and provides a specific service. If a change is forced in one layer (for example, if MNP is modified for use on a new computer), the change is confined to that layer while the layer's standard interface to the other layers remains unchanged. In addition to ensuring machine portability, MNP's structure allows services provided by one layer to support those in the layer above. The accumulation of services is then passed upward, from layer to layer to the applications program. MNP defines three unique protocol layers in addition to the physical connection; the link, the session, and the file protocol layers. The protocol layers are triggered sequentially from the bottom (physical) to the top (file transfer).
The link layer is responsible for providing reliable, controlled data transmission over a medium that is inherently noisy and likely to cause errors. Once a physical connection is established between two modems, the link protocol acts as a negotiator causing both devices to agree on the nature of the link. For example, the link protocol establishes whether the connection will be half- or full-duplex, how many data messages can be sent before confirmation is required, the size of a single data packet, etc. As will be more evident hereinafter, the link protocol utilized in the preferred embodiment is modified to include the necessary information to carry out the principles of the present invention. After establishing values for the above requirements, the link protocol initiates data transfer, paces the flow of data and, if necessary, re-transmits data messages that contain errors due to telephone line noise. The link protocol allows blocks or packets of data (as opposed to individual bytes) to be sent synchronously or asynchronously to the receiving computer. Data transfer is faster when packets are transmitted synchronously because start and stop characters are not needed, and as a result, the ratio of data to control characters regulating the transfer is higher. Control is possible because of a mainframe-like (framing) technique in which a block of data is carried from both ends with specific codes.
In order for any communications protocol to facilitate communications among a wide variety of computers, the protocol must be able to operate in a number of modes. These modes include a matched-protocol mode for use by two communicating devices supporting the same protocol. Such a matched-protocol mode may provide optimized data transmission including a number of known optimizing features such as detecting and correcting errors, data compression, and optimizing transmission speed. The latter is achieved in the link layer of the MNP protocol by sensing the error rate. Should the error rate be too high at the receiving end, the receiving end provides an indication that the signal to noise ratio is too low for the attempted modulation rate (i.e., baud rate) so the transmitting modem downshifts, i.e., transmits at a slower modulation rate to improve signal quality. Conversely, should the transmission of data be error free the receiving modem can instruct the transmitting modem to upshift to a higher modulation or baud rate so that data can be transmitted at a higher and more efficient modulation rate so as to increase data throughput without sacrificing quality.
Certain communication channels, such as cellular networks, are particularly noisy. The noise levels in the transmission channels are directly related to the signal to noise ratio, which in turn is directly related to the available throughput (the maximum rate at which information can pass through the particular transmission channel). Even worse, as transmission of a signal passes from one cell to another cell in a cellular communications network the quality of the line can abruptly change. This wide range of line quality can result in demodulation errors. Worse, the line temporarily can disconnect resulting in disruption in the line. While such disruption can be acceptable for voice communications it can be disastrous for data transmission since the carrier signal, and thus a great deal of transmitted data, can be lost. In the latter situation the two modems must be "retrained" so that the two modems are suitably resynchronized with one another and data can be transmitted between the two.
This problem is exacerbated because companding techniques often are utilized in cellular communications because the dynamic range of the transmission medium is particularly small (the power level range between a floor where noise will mask a transmitted signal, and a ceiling where transmitted signals saturate and thus distort). Accordingly, signals are first dynamically compressed prior to being transmitted through the transmission channel, and subsequently dynamically expanded when received from the transmission medium so as to preserved the dynamic range of the original signal. When compressing a signal the gain impressed on the transmitted signal is automatically controlled as a function of the power level of the original signal so that the power level is actually boosted for low power levels and attenuated for high power levels by a predetermined compression factor (as a function of the dynamic range of the transmission medium). Thus, a greater range of power levels of the transmitted signal, once compressed, can be transmitted within the narrower dynamic range of the transmission channel. The signal is expanded in a complementary manner at the receiving modem so that the signal is restored to its original dynamic range without distortion or loss. This compression and complementary expansion factor (i.e., companding factor) is typically determined by the location of the floor and ceiling of the dynamic range of the transmission medium, and for cellular communications is specified in cellular network standards. It is customary that the power level of the original signal is preset at a predetermined level above the noise floor of the transmission channel when transmitting the signal so as to optimize the transmission performance. This easily can be done for a communication channel where the dynamic range and noise floor are fairly fixed. However, in cellular communications as the transmission of a signal is passed from one cell to another, the transmission characteristics of the channel may change (i.e., the attenuation drop can vary), which in turn can result in the power level of the received signal dropping below the noise floor. This can result in the noise masking the signal causing data to be lost or received in error. Thus, the optimum power level for transmission through one cellular transmission channel may not be optimum for another.